Providing dynamic widgets in a browser

ABSTRACT

A computer may provide, in a rendered and displayed browser, access to a cloud services related portal. Access may also be provided to a dynamic graphical widget in the portal. The dynamic graphical widget may be related to a cloud service and be customizable via the browser. The computer may receive a user input to cause movement of the dynamic graphical widget from a docked to undocked displayed position in the browser.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/567,280 filed Aug. 6, 2012, which is a continuation of U.S. patentapplication Ser. No. 12/750,894 filed Mar. 31, 2010, which issued asU.S. Pat. No. 8,271,615 on Sep. 18, 2012, which claims the benefit ofU.S. Provisional Application Ser. No. 61/202,738 filed on Mar. 31, 2009,the contents of which are all hereby incorporated by reference herein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to a multi-tenant software as aservice (SaaS) application that manages and monitors the use of otherSaaS applications via a centralized common connection and databaseframework.

2. Description of the Related Art

SaaS refers to a software application delivery model where a softwarevendor develops a web-native software application and hosts and operatesthe application for use by its customers over the Internet. SaaSapplications are an increasingly popular model for providing softwarefunctionality as it is economical in terms of both cost and customerhardware resources. As SaaS applications and services become morereadily available, it is evident that more corporate entities, inparticular, will adopt these services as a replacement for on-premisesolutions.

These SaaS services are also referred to as cloud services. These cloudservices may relate to applications such as email, financial systems,accounting, bookkeeping and others. The challenge related to such cloudservices is that they are offered by different entities spread acrossthe Internet. Thus, as the availability of cloud services multiply, theadministrative overhead needed to monitor and manage these services willalso multiply. Thus, it is desirable to reduce the time and effortrequired for the administrative overhead needed to monitor and managethese cloud services.

SUMMARY OF THE INVENTION

An embodiment of the invention is directed to a method for monitoringand managing the use of a plurality of software as a service (SaaS)applications within a common connection and database framework.

The method includes receiving a request for monitoring and managinginformation and attributes related to the SaaS applications, wherein therequest is received via a single portal within the common connection anddatabase framework. An Internet-based interface is then displayed, whichis configured to display, select and access information and attributesrelated to the SaaS applications.

Using the Internet-based interface, a selection of an object related tothe SaaS applications to be monitored and managed is received. Whenmonitoring is performed on the selected object, the monitoring includes:selecting at least one item from a list of available items on which toperform a monitoring operation based on the object selected; selectingat least one SaaS application from a list of available SaaS applicationsrelated to the object selected; selecting a type of report for reportingmonitoring results; selecting a time period for performing monitoring,if the time period is necessary; and providing a monitoring resultreport.

On the other hand, when management is performed on the selected object,the management includes: selecting a management operation for the objectselected; selecting at least one SaaS application and at least one itemfrom a list of available SaaS applications and a list of available itemsrelated to the object selected; performing the management operation onthe at least one item selected and for at least one SaaS applicationselected; and storing a result of the management operation performed.

The monitoring and managing of the information and attributes can beperformed for selected categories, objects, items and SaaS applicationsdisplayed in the Internet-based interface via the single portal withinthe common connection and database framework.

The method also includes partitioning of the information and attributesavailable for display, selection and access via the Internet-basedinterface, wherein the partitioning is based on SaaS applicationsregistered to a user or corporate entity. For example, each user orcorporate entity may have associated objects and object attributesrelated to SaaS applications that can be accessed using a unique butcommon identification key. Such a key can be used to create logicalpartitions for each of the users or corporate entities.

An example of the monitoring operation includes reading, extracting,analyzing, correlating and reporting information, wherein the managementoperation includes, but is not limited to, reading, writing, modifying,deleting and copying. Additionally, the monitoring result may beprovided via a textual or graphical representation. The objects include,but are not limited to, users, groups, policies, mailboxes and phones;and the items include subsets of the users, the groups, the policies,the mailboxes and the phones related the use of the SaaS applications.

In an embodiment of the invention, a method for monitoring and managingSaaS applications within a common connection and database frameworkprovides a social networking infrastructure that allows sharing ofinformation related to the plurality of SaaS applications by connectingto the common connection and database framework. The information mayinclude existing experiences with the use of an SaaS application or arating of an SaaS application. The information can be presented in agraphical format along with text comments related to the rating of theSaaS application. Additionally, an embodiment of the invention includesproviding an application exchange infrastructure that allows for theexchange of information related to the user-defined code submissioninterface with this application and SaaS applications.

Another embodiment of the invention is directed to a program stored on anon-transitory computer-readable medium for monitoring and managing theuse of the SaaS applications within a common connection and databaseframework, the program causes a computer to perform the methods of theembodiments of the invention noted above.

An embodiment of the invention is directed a system for monitoring andmanaging the use SaaS applications within a common connection anddatabase framework. The system includes databases configured to storeinformation and attributes related to the SaaS applications, wherein thedatabases include an objects database, a methods database and a logsdatabase.

Additionally, the system includes an Internet-based interface configuredto display, select and access the information and attributes related tothe SaaS applications; and a first data access layer configured toestablish data communications between the Internet-based interface andthe databases based on a command received from the Internet-basedinterface, wherein the data communications includes, but is not limitedto, retrieving and storing the information and attributes related to theSaaS applications

A push-pull data layer is configured to push data to and pull data fromthe SaaS applications based on a command received via the Internet-basedinterface; and a second data access layer configured to established datacommunications between the push-pull data layer and the SaaSapplications based on a command received from the Internet-basedinterface.

The system also includes a first network interface configured toestablish a connection to the Internet-based interface from athird-party apparatus via a public network; and a second networkinterface configured to establish a connection between the push-pulldata layer and the SaaS applications via the public network.

If desired, the system is configured to monitor and manage selectedinformation and attributes of the SaaS applications available within theInternet-based interface via a single portal to the system via the firstnetwork interface and the public network.

An embodiment of the invention is directed to an apparatus formonitoring and managing the use of SaaS applications within a commonconnection and database framework. The apparatus includes: anInternet-based interface configured to display, select and accessinformation and attributes related to the SaaS applications; and a firstdata access layer configured to establish data communications betweenthe apparatus and a plurality of databases based on a command receivedvia the Internet-based interface, wherein the data communicationsincluding storing and retrieving the information and attributes storedin the plurality of databases.

The apparatus includes a push-pull data layer configured to push data toand pull data from the SaaS applications based on a command received viasaid Internet-based interface; and a second data access layer configuredto establish data communications between the apparatus and the SaaSapplications based on a command received from said push-pull data layer.

If desired, the apparatus is configured to monitor and manage selectedinformation and attributes of the SaaS applications available within theInternet-based interface via a single portal to the apparatus via thepublic network.

Additionally, in other embodiments of the invention, both the system andapparatus include a social networking infrastructure and an applicationexchange infrastructure that allows sharing of information related tothe plurality of SaaS applications by connecting to the commonconnection and database framework.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, like reference numbers generally indicate identical,functionally similar and/or structurally similar elements. Embodimentsof the invention will be described with reference to the accompanyingdrawings, wherein:

FIG. 1 illustrates a system for monitoring and managing the use of SaaSapplications in accordance with an embodiment of the invention;

FIG. 2 illustrates an Internet-based interface for monitoring andmanaging the use of SaaS applications in accordance with an embodimentof the invention;

FIG. 3 illustrates a flowchart for performing a method of monitoring theuse of SaaS applications in accordance with an embodiment of theinvention;

FIG. 4 illustrates a flowchart for performing a method of managing theuse of a plurality of SaaS applications in accordance with an embodimentof the invention;

FIG. 5 illustrates a flowchart for performing the social networkfunction related to the use of SaaS applications in accordance with anembodiment of the invention;

FIG. 6 illustrates a flowchart for performing the application exchangefunction related to the use of SaaS application in accordance with anembodiment of the invention;

FIG. 7 and FIG. 8 illustrate examples of the textual and graphicalrepresentations of the information available via the social networkingfunction;

FIG. 9 illustrates a flowchart for performing a method of searchinginformation related to the SaaS applications in accordance with anembodiment of the invention; and

FIG. 10 illustrates a monitoring and managing apparatus in accordancewith an embodiment of the present invention.

Additional features are described herein, and will be apparent from thefollowing description of the figures.

DETAILED DESCRIPTION OF THE INVENTION

In the description that follows, numerous details are set forth in orderto provide a thorough understanding of the invention. It will beappreciated by those skilled in the art that variations of thesespecific details are possible while still achieving the results of theinvention. Well-known elements and processing steps are generally notdescribed in detail in order to avoid unnecessarily obscuring thedescription of the invention.

In the drawings accompanying the description that follows, often bothreference numerals and legends (labels, text descriptions) may be usedto identify elements. If legends are provided, they are intended merelyas an aid to the reader, and should not in any way be interpreted aslimiting.

FIG. 1 illustrates a system for monitoring and managing the use ofsoftware as a service (SaaS) applications in accordance with anembodiment of the invention. The system is an Internet connected portalsystem that includes a security framework for connection to anInternet-based interface for providing, for example, access to databasesfor data storage and aggregation, object and object attribute managementand monitoring capabilities, report and event correlation, and plug-inframework for controlling the administrative operations for multiplenon-integrated Internet hosted SaaS services. A user will utilize thissystem by accessing the Internet-based interface as a single sign-inportal via a public network such as the Internet.

Starting from the top of FIG. 1, all external connections to and fromthe system 100 are performed over the public Internet 101. A firewall102 provides standard encryption protocols used to secure communicationsto and from the system 100, and to and from the SaaS applications120-123 via the Internet 101. The firewall 102 may be a part of thesystem 100, but is preferably provided as part of a supportinginfrastructure that merely provides protection the system 100 as awhole.

A user interface to the system 100 is provided as an Internet-based(front end) portal 103. The primary component of the portal 103 includesa dashboard that acts as a container for all other user interfaceelements or widgets 105 for initiated functions of the system 100. Thewidgets 105 are graphical elements that are linked and dependent on apush-pull data layer or user-defined code submissions 112-115 (hereafterreferred to as “user-defined code submissions 112-115”). Theuser-defined code submissions 112-115 can be, for example, a PHPcomputer language that allows data communications within the frameworkof the system 100 via the dashboard of portal 103 and to the SaaSapplications 120-123 via the Internet 101. For example, the user-definedcode submissions 112-115 allows the system 100 to push data to and pulldata from the SaaS applications 120-123 based on an activity initialedfrom the dashboard of the portal 103 or at periodic intervals.Additionally, the widgets 105 also contain links and or shortcuts toother functions of the system 100 available through the portable 103.

The graphic elements or widgets 105 are not confined to a stationarylocation, but can be moved, docked, and undocked from the dashboard ofthe portal 103 by the user of the system 100. To this end, the dashboardof the portal 103 is dynamic in nature and can be customized.

A data access layer 106, 110 provides access to and from the databases107, 108, 109. The databases include, but are not limited to, an objectsdatabase 107, a methods database 108 and a logs database 109. The objectdatabase 107 contains all tables, queries, stored procedures, andapplication code required to store, add, append, delete, modify, andexecute all methods to objects and object attributes defined therein.All write and query operations against the object database arecontrolled and brokered via the data access layer 106. The data accesslayer 106 validates and secures all connections to and from the objectdatabase 107. The object and object attribute are configured and definedby the users of the system 100 so as to manipulate the correspondingSaaS objects and object attributes as defined and provided in theuser-defined code submissions 112-115 related to the SaaS applications120-123. The user of the system 100 may be an individual user of thesystem 100 or preferably a corporate entity.

The objects and object attributes are stored in the object database 107in a cross-tabular format to allow the system 100 to index and quicklyquery across all object and object attributes stored in the system 100.The system 100 can synchronize specific objects and object attributesand subsets of object attributes with external sources such as, but notlimited to, LDAP, XML, CVS, TSV, and XLS as provided by the user of thesystem 100. Synchronization with these external sources is defined bythe user and will be controlled, secured and normalized by the dataaccess layer 106, 110. This synchronization can be performed in a singleor bi-directional method.

The methods database 108 contains all tables, queries, storedprocedures, and application code required to store, add, append, delete,modify, and execute all actions available to be performed against objectand object attributes related to the SaaS applications. Actionscontained within this database 108 include but are not limited to add,delete, modify copy, clone, grow, and shrink operations. These actionsstored in the database 108 are made available to the system framework,and the user-defined code submissions 112-115 via the data access layer106, 110. All write and query operations against the methods database108 are controlled and brokered via the data access layer 106. The dataaccess layer 106, 111 validates and secures all connections to and fromthe methods database 108 and to and from the user-defined codesubmissions. The available methods set are configured and defined by asystem administrator and the user of the system 100 to manipulate thecorresponding object or object attributes related to an SaaS applicationdefined and provided in the user-defined code submissions 112-115.

The logs database 109 contains all tables, queries, stored procedures,and application code required to store, add, append, delete, modify allactivity, events, incidents, security, operational, performance, uptime,and other SaaS application or user specific information in the system100. The system 100, using user-defined time intervals, remotely queriesand records responses for performance and uptime into the logs database109 via the data access layer 106. The uptime and performance queriesare performed utilizing standard IP protocols such as ICMP types 8.0 andTCP 80 (HTTP). All responses and the time intervals between request andresponses via the system 100 are recorded in sequence in the database109 via the data access layer 106. The data contained within thedatabase 109 is extracted via the data access layer 106 and presented tothe user via textual and graphical representations, such as, tables,graphs, plots, trends, pivots, and other reports defined within thesystem 100.

The system 100 maintains a logical separation of data contained in thedatabases 109 to isolate the log data from other users. That is, thesystem 100 performs a partitioning of the information and attributesavailable for display, selection and access via the Internet-basedinterface, wherein the partitioning is based on SaaS applicationsregistered to a user or corporate entity. For example, each user orcorporate entity company may have associated objects and objectattributes related to SaaS applications that can be accessed using aunique but common identification key for each user or corporate entity.Such a key can be used to create logical partitions for each of theusers or corporate entities.

Operations performed by the user-defined code submissions 112-115 withrespect to the system 100 are brokered and secured by the API(Application Programming Interface) 111 and all the code, logic,functions and parameters contained therein. Additionally, all requestsby the system 100 to the SaaS applications 120-123 are brokered andsecured by the APIs 115-117 of the SaaS applications and all the code,logic, functions, and parameters contained therein. The API contains allcode, logic and methods that are made accessible to the user-definedcode submissions 112-115 in order to access the framework and databases107, 108, 109 and perform the primary functions of the system 100.Additionally, the data access layer 111 validates and secures allconnections between the databases 107, 108, 109 and the API 115-117.

Additionally, the API 115-117 and all associated code, methods, andlogic may not be used to perform the systems 100 secondary function. Alloperations performed on object or object attributes via the secondaryfunction of the system 100 can automatically be processed anddistributed via the plug-in framework to the various hosted SaaSapplication services 120-123. The plug-in framework will provide as theAPIs. The plug-in frame work may be a community development of plug-insthat will work within the confines of the system framework. The objectsand the state of these objects including all associated metadata will bestored in the databases 107, 108, 109 associated with the Internetconnected portal 103.

FIG. 2 illustrates the Internet-based interface for monitoring andmanaging the use of SaaS applications in accordance with an embodimentof the invention. The user Internet-based interface to the system 100 isprovided as an Internet-based (front end) portal 103. As seen from FIG.2, the portal 103 includes interface elements or widgets 105 forinitiated functions of the system 100 related to SaaS applications. Thewidgets 105 are graphical elements that are displayed to the user in aweb browser 210 that acts as a dashboard (hereafter referred to as“dashboard 210”). The widgets 105 are linked to and dependent on theuser-defined code submissions 112-115, and the user-defined codesubmissions 112-115 are related to SaaS applications registered to usersof the system 100. The widgets 105 also contain links and or shortcutsto other functions 200 of the system 100 available through the dashboardof the portal 103 allowing a user to jump into either the primary orsecondary function provided by the system 100 from the dashboard 210.

The widgets 105 displayed in the dashboard 210 are dynamic in nature andcan be customized to some extent by the user and based on the SaaSapplications registered to the user. The widgets 105 can interact withthe system 100 and the system framework and display information relatedto SaaS applications 120-123 associated with the widgets 105 using, forexample, various graphical and textual formats.

As seen in FIG. 2, the dashboard 210 also includes graphical elementsrelated to the primary and secondary functions of the system 100. Forexample, the two primary function of the system 100 can be initiated byselecting “monitor” and “manage” graphical elements 201, 202 of thedashboard 210. Additionally, the secondary function of the system 100can be initiated by the selecting the “connect” and “search” graphicalelements 203, 212 of the dashboard 210. The primary and secondaryfunctions of the system 100 will be explained in more detail withreference to the figures that follow. The dashboard 210 also providesaccess to a social networking function “messages and replies” 205, whichmay be based on the use of SaaS applications by users and may includeaccess to feedback and ratings of an SaaS application. The dashboard 210also provides means for determining overall health of the system 209,latest status updates 204 and options related to advertising 211.

The dashboard 210 also contains design elements and functional elementssuch as buttons, fly-out menus, scrolling text and graphics, and inputdialog boxes. Additionally, when a user interacts with one or many ofthe graphical elements displayed on the dashboard 210, and windowsexternal to the dashboard are generated for more refined user input andinteraction. The windows include, but are not limited, to buttons, text,graphics, input fields, drop down menus, single and multi-select listsexpand/contract lists, and combo boxes. The purpose of these windows isto collect more information from the users for performing theapplication's primary and secondary functions.

Graphical elements available for display to the user via the dashboard210 are dependent on what user-defined code submissions 112-115 andrelated SaaS applications are registered to the user of the system 100.The user-defined code submissions 112-115 registered or unregistered toa user populate or omit the options available to the user via thedashboard 210 of the portal 103. These options would include, but arenot limited to objects, object attributes, methods, reports, andgraphical interface elements related to SaaS applications 120-123.

FIG. 3 illustrates a flowchart for performing a method of monitoring theuse of SaaS applications in accordance with an embodiment of theinvention. The monitoring function illustrated in FIG. 3 is one of thetwo primary functions performed by the system 100. Generally, themonitoring function performed by the system 100 includes, but is notlimited to, read, extract, analyze, correlate, and report, in eithertabular or graphic representations of the data, on operational events,logs, incidents, performance, uptime, and other user specificoperational metrics related to SaaS applications.

In step 300, the monitoring process can be started by connecting to thesystem 100 and initiated in step 301 by the selection of a graphicalelement within the dashboard 210 such as “monitor” 202. The monitoringfunction may also be initiated by selecting an option within one of theother graphical elements (e.g. 200, 212) in the dashboard 210.

When the monitoring function is initiated in step 301, the user will bequeried as to what object is to be monitored. That is, the user ispresented with a list of objects that are available based on theuser-defined code submissions 112-115 and SaaS applications 120-123registered to the user. The object listed may relate to but are notlimited to user, group, policy, mailbox, phone or user defined plug-infor SaaS applications. In step 302, an object is selected by the uservia the dashboard 210. In step 303, it is determined if a selection hasbeen completed, and if not, the system 100 will again send a query tothe user regarding the selection of an object. In step 303, if it isdetermined that a selection has been completed, then the user ispresented with a list of available items on which to perform amonitoring operation based on the object selected.

In step 304, the user selects an item or items for performing themonitoring operation based on object selected via the dashboard 210. Instep 305, if it is determined whether a selection has been completed,and if not, then the user is again sent a query regarding the selectionto be performed. In step 305, if it is determined if a selection iscomplete, then the user is presented with a list of associated SaaSapplications for which the monitoring operation of the items or items isto be performed. The list of associated SaaS applications and itemspresented to the user is based on the user-defined code submissions112-115 and SaaS applications 120-123 registered to the user.Additionally, the SaaS applications presented to the user depend on theobject selected. For example, if the object selected is “mailbox” thenonly the SaaS applications presented to the user for selection willrelate to e-mail services. In step 306, the user makes a selection ofthe associated SaaS applications and the items or items via thedashboard 210.

In step 307, the user selects a type or report for reporting the resultsof the monitoring being performed for the SaaS applications and item oritems selected. The user selects the type or report via the dashboard210, and it is preferred that only one type of report be selected at atime for reporting the monitoring results.

In step 308, the user selects a time variable for performing themonitoring, if needed. For example, a time variable may include but isnot limited to a certain start time and end time for performing themonitoring. Additionally, not all reports of monitoring results willrequire a time variable. In step 309, the results of the monitoring areprovided to the user. For example, the user can select an option withinthe dashboard 210 to generate a report for the monitoring beingperformed. The report can be run and displayed on a screen within thedashboard 210, and the user can print the requested report. In step,310, the user determines if there is any other type of report, object,items or SaaS applications for which monitoring results are needed. Ifso, the user can make another selection as in step 302. On the otherhand, if no other monitoring results are needed, then the user can endthe monitoring function performed by the system 100 in step 311.

FIG. 4 illustrates a flowchart for performing a method of managing theuse of a plurality of SaaS applications in accordance with an embodimentof the invention. The managing function illustrated in FIG. 4 is thesecond primary function performed by the system 100. Generally, themanaging function performed by the system 100 includes, but is notlimited to read, write, modify, delete, and subsets or variations ofthese actions, such as, clone or copy on or against user specificobjects and object attributes related to SaaS applications.

In step 400, the managing function can be started by establishing aconnection to the system 100, and initiated in step 401 by the selectionof a graphical element within the dashboard 210 such as “manage” 201.The managing function may also be initiated by selecting an optionwithin one of the other graphical elements (e.g. 200, 212) in thedashboard 210.

When the managing function is initiated in step 401, the user will bequeried as to what object is to be managed. That is, the user ispresented with a list of objects that are available based on theuser-defined code submissions 112-115 and SaaS applications 120-123registered to the user. The object listed may relate to but are notlimited to user, group, policy, mailbox, phone or user defined plug-infor SaaS applications. In step 402, a selection of an object is made viathe dashboard 210. In 403, it is determined if a selection has beencompleted, and if not, the system 100 will again send a query to theuser regarding the selection of an object.

In step 403, if it is determined that a selection has been completed,then in step 404 the user selects a management operation to be performedon the object selected. The management operations available to the userare based on the user-defined code submissions 112-115 and SaaSapplications 120-123 registered to the user, and the selection of amanagement operation to be performed is made via the dashboard 210. Instep 405, it is determined if a selection of a management operation hasbeen made, and if not, the user is again sent a query regarding theselection of a management operation.

In step 405, if it is determined that the selection of a managementoperation is complete, then the user is presented with a list of SaaSapplications and items on which to perform the selected managementoperation. The list of associated SaaS applications and a list of itemsavailable for selection are based on the user-defined code submissions112-115 and the SaaS applications 120-123 register to the user. In step406, the user makes a selection of an item or items and associated SaaSapplications on which to perform the management operation via thedashboard 210. The selection by the user may include a single selectionor a selection of multiple items and associated SaaS applications forperforming the selected management operation. In step 407, it isdetermined if the user would like to save the selected managementoperation for later use, and if so in step 408 the management operationis saved in one of the databases 107, 108 and 109.

After saving the management operation in step 408, the user can chooseto make another selection of an object, item(s) and SaaS application(s)on which to perform a management operation in step 410. Otherwise, ifthe user wishes to perform the selected management operation, then instep 409 the selected management operation is performed on the item oritems and for the SaaS applications selected. In step, 410, it isdetermined whether the user would like to make another selection of anobject, item(s) and SaaS application(s) on which to perform a managementoperation. Otherwise, the user can decide to end the management functionperformed by the system 100 in step 411.

FIG. 5 illustrates a flowchart for performing the social networkfunction related to the use of SaaS applications in accordance with anembodiment of the invention. The social networking infrastructure andframework offered by the system 100 allows users to share and expand onexisting experiences with SaaS applications. The social networkingfunction includes a user contributed and maintained knowledge base withfeedback and comment functionality, which includes various ratingsystems for SaaS applications, and rating system for the applicationsuser-defined code submissions.

Each SaaS application 120-123 and the related user defined codesubmissions 112-115 will belong to categories and one or moresubcategories. These categories and sub-categories aid in the search andorganization of the SaaS applications and the related user-define codesubmissions within the social network and via the dashboard 210 of theportal 103. The social network allows a subset of the above mentionedfunctions to be used and viewed by anonymous connections to the system100 while the full extent of the above mentioned functions are availablefor registered users only via a membership module. The membership modulebeing a more customized dashboard that would include widgets 105 relatedto the SaaS applications and user-defined code submission registered tothe member.

The social networking function provides users of the system 100 bothanonymous and registered aggregate performance data from all SaaSapplications being managed and monitored by the system 100. This datawill be provided in order for potential SaaS customers of particularSaaS services or application to see what current customers of the SaaSapplications are experiencing with respect, for example, SLAs, uptime,and performance. Using this data, potential SaaS customers will be ableto easily search and discover SaaS providers that are meeting orexceeding real business SLAs in uptime and performance. This incombination with a user rating system provides the users of the socialnetworking function a unique place to review, rate, and research SaaSproviders and their service levels.

As seen in FIG. 5, the social network function starts at step 500 when auser requests a connection to the common connection and databaseframework of the system 100 via the public network 101. The system 100displays the dashboard via the internet-based portal 103, and the socialnetwork function is initiated in step 501 by a selection of graphicalelement related to the social networking function within the dashboard210. In step 502, a list of categories of services available to the uservia the social networking function are displayed and the user is queriedwith regard to the selection of a category of interest. In step 503, itis determined if a selection of a category is complete, and if not, theuser is queried again with regard to making a selection. In step 503, ifthe selection of the category is complete, the user is presented with alist of sub-categories of the selected category selected and queried asto a sub-category of interest to be selected. In step 504, the userselects a sub-category of interest.

In step 505, it is determined if the selection of a sub-category iscomplete, and if not, the user is queried again with regard to theselection of a subcategory. In step 505, if a selection of sub-categoryis complete, then in steps 506 and 507, the user is provided access toand the ability make a selection of the data available for thesubcategory selected. As noted above, an example of the data availablemay include SaaS providers meeting or exceeding real business SLAs inuptime and performance. Additionally, the data may be related to a userrating system that provides the users of the social network a uniqueplace to review, rate, and research SaaS providers and their servicelevels.

The social network function also offers the ability of a user to providedata regarding their use or experience with an SaaS application.Accordingly, in steps 508, it is determined if the user wishes to storedata related to the selected sub-category and, if so, in step 509 thedata is stored. In step 508, if the user does not wish to store datarelated to the selected sub-category, then the process ends in step 511.However, in step 510, it is determined if the user wants to make anotherselection of a category of interest, and if so, another selection can bemade, as in step 502. However, if no additional selection is to be madein step 510, then the process ends at step 511.

FIG. 6 illustrates a flowchart for performing the application exchangefunction related to the use of SaaS application in accordance with anembodiment of the invention. The application exchange function of thesystem 100 allows external developers to utilize a public applicationsoftware development kit to access and utilize databases andinfrastructure to perform the primary functions of the system 100. Thesoftware development kit (SDK) contains all methods needed to interfacewith the system APIs. With the SDK format, developers are able toprovide objects, attributes and operational data that will allowinteraction with selected SaaS applications. The user-defined codesubmissions are contributed to the system 100 via, for example, aninteractive application storefront. Additionally, the applicationstorefront allows registered users of the system 100 to select,register, unregister, and rate all the available user-defined codesubmissions.

As seen in FIG. 6, the application exchange function starts at step 600when a user requests a connection to the common connection and databaseframework of the system 100 via the public network 101. The system 100displays the dashboard via the internet-based portal 103, and theapplication exchange function is initiated in step 601 by a selection ofgraphical element related to the application exchange function withinthe dashboard 210. In step 602, a list of categories of servicesavailable is displayed and the user is queried with regard to theselection of a category. In step 603, it is determined if a selection ofa category is complete, and if not, the user is queried again withregard to making a selection. In step 603, if the selection of thecategory is complete, the user is presented with a list ofsub-categories of the selected category selected and queried as to asub-category to be selected. In step 604, the user selects asub-category via the dashboard 210.

In step 605, it is determined if the selection of a sub-category iscomplete, and if not, the user is queried again with regard to theselection of a subcategory. In step 605, if a selection of sub-categoryis complete, then in steps 606 and 607, the user is provided access toand the ability make a selection of the data available for thesubcategory selected. As noted above, the data may relate to objects,attributes and operational data that will allow interaction withselected SaaS applications. In step 608, the user can initiate theapplication exchange by, for example, storing the data that will allowinteraction with selected SaaS applications.

The application exchange function also offers the ability of a user tocontribute data to the system 100, wherein the data may relate toobjects, attributes and operational data that will allow interactionwith selected SaaS applications. Accordingly, in steps 609, it isdetermined if the user wishes to store data related to the selectedsub-category and, if so, in step 610 the data is stored. In step 609, ifthe user does not wish to store data related to the selectedsub-category, then it is determined if the user wants to make anotherselection of a category of interest in step 611. If the user wishes tomake another selection, then another selection can be made as in step602. However, if no additional selection is to be made, then the processends at step 612.

FIGS. 7 and 8 illustrate examples of the textual and graphicalrepresentations of the information available via the social networkingfunction. As noted above in the discussion of FIG. 5, a user connectedto the social networking function via the dashboard 210 is provided witha list of categories of services that are available to the user.

FIG. 7 is an exemplary representation of a list 700 of categories ofservices 701, 702, 703, 704, 705, 706, 707 available to the user throughthe social network function of the system 100. In this case, it isassumed that the category of interested selected by the user is“Financials & Accounting” 701. FIG. 8 illustrates the list 800 ofsub-categories 801, 802, 803 of the “Financials & Accounting” 701. Auser would reach the sub-categories 801, 802, 803 by making a selectionof the category “Financials & Accounting” 701 show in FIG. 7. As seen inFIG. 8, the list 800 of sub-categories includes “Peachtree” 801,“QuickBooks” 802, and “NETSUITE” 803. Additionally, FIG. 8 includesrating information 805 for each of the sub-categories “Peachtree” 801,“QuickBooks” 802, and “NETSUITE” 803 listed. Based on a review of thedata related to a sub-category, the user can register for a subcategory,which is related to an SaaS application, by making a selection 804 toadd the corresponding sub-category to the list of registered SaaSavailable to the user.

Additionally, the secondary function offered through the system 100 isalso very beneficial to the user of the application with respect tobusiness compliance and governance. Operational and Security loginformation can be extracted from an SaaS application via theuser-defined code submission and stored centrally within theapplications logs database 109. The data contained within this database109 can then be queried and reported in various formats. This data isalso able to be sorted and filtered by user, date, time, application,event type, and severity type. By gathering and correlating all thisdata into a central repository the user of the application can createreports used for testing evidence for audits such as SOX, GLB, PCI,HIPAA, and other industry specific data and information securitycompliance regulations. Such data can also be used to produce activityreports for a single user or a group of users across all managed andmonitored SaaS applications.

FIG. 9 illustrates a flowchart for performing a method of searchinginformation related to the SaaS applications in accordance with anembodiment of the invention. As seen in FIG. 2, the dashboard 210includes search option 212 for searching within the system 100 via thedashboard 210. As seen in FIG. 9, search function begins in step 900,when a user requests a connection to the common connection and databaseframework of the system 100 via the public network 101. The system 100displays the dashboard 210 via the internet-based portal 103, and thesearch function initiated in step 901 by a selection of graphicalelement 212 related to the search function within the dashboard 210. Alist of services available to the user to be searched via the socialnetworking function is displayed and the user is queried with regard tothe selection of the service to be searched.

In step 902, the user makes a selection of the service to be searched.In step 903, it is determined if a selection of a service is completed,and if not, the user is queried again with regard to making a selection.In step 903, if the selection of a service is completed, then in step904 the user is presented with a list of objects and object attributesrelated to the service selected. In step 905, it is determined if theuser would like to access the monitoring function of the system 100 withregard to the object or object attributes listed. The monitoringfunction available to the user is similar to that discussed withreference to FIG. 3 and therefore will not be repeated here.

In step 905, if it is determined that the user does not wish to accessthe monitoring function, then in step 906 it is determined if the userwould like to access the managing function of the system 100 with regardto the object or object attributes listed. The managing functionavailable to the user is similar to that discussed with reference toFIG. 4 and therefore will not be repeated here. In step 906, if it isdetermined that the user does not wish to access the managing functionwith regard to the objects and object attributes listed, then in step907 it is determined if the user would like to select another service tobe search, and if so, then another service is selected, as in step 902.In step 907, if it is determined that another service will not beselected, then in step 908 the process ends.

FIG. 10 illustrates an exemplary monitoring and managing apparatus inaccordance with an embodiment of the present invention. In FIG. 10, themonitoring and managing apparatus 1000 includes a memory 1001, aprocessor 1002, user interface 1003, application programs 1004,communication interface 1005, bus 1006 and API 1007.

The memory 1001 can be non-transitory computer-readable storage mediumused to store executable instructions, or computer program thereon. Thememory 1001 may include a read-only memory (ROM), random access memory(RAM), programmable read-only memory (PROM), erasable programmableread-only memory (EPROM), a smart card, a subscriber identity module(SIM), or any other medium from which a computing device can readexecutable instructions or a computer program. The term “computerprogram” is intended to encompass an executable program that existspermanently or temporarily on any computer-readable storage medium asdescribed above. The computer program is also intended to include analgorithm made up of executable instructions stored in the memory 1001that are executable by the processor 1002, which may be facilitated byone or more of the application programs 1004.

The user interface 1003 allows for interaction between a user and themonitoring and management apparatus 1000. The user interface 1003includes the Internet-based (front end) portal 103, wherein the portal103 includes the dashboard 210 that acts as a container for all otheruser interface elements or widgets 105 for initiated functions of thesystem 100. The communication interface 1005 provides for two-way datacommunications to and from the monitoring and management apparatus 1000.

The application programs 1004 may include, but are not limited to, anoperating system or any special computer program that manages therelationship between application software and any suitable variety ofhardware that helps to make-up a computer system or computingenvironment of the monitoring and management apparatus 1001. Generalcommunication between the components in monitoring and managementapparatus 1001 is provided via the bus 1006.

Additionally, the monitoring, managing, social networking, connectingand searching functions as described with reference to FIGS. 3-9 can allbe performed by the application programs 904 or by programs oralgorithms that are stored, for example, in the memory 1001 of themonitoring and managing apparatus 1000 and executed by the processor1002. The application programs 1004 also include the user-defined codesubmissions 112-115 that allows data communications via the dashboard ofportal 103 and to the SaaS applications 120-123 via the Internet 101. Asnoted with reference to FIG. 1, the user-defined code submissions112-115 allows the monitoring and managing apparatus 1000 to push datato and pull data from the SaaS applications 120-123 based on an activityinitialed from the dashboard of the portal 103 or at periodic intervals.Additionally, the widgets 105 also contain links and or shortcuts toother functions available through the portable 103.

The communication interface 1005 may also include a digital subscriberline (DSL) card or modem, an integrated services digital network (ISDN)card, a cable modem, or a telephone modem to provide a datacommunication connection to a corresponding type of telephone line. Asanother example, communication interface 1005 may be a local areanetwork (LAN) card (e.g., for Ethernet™ or an Asynchronous TransferModel (ATM) network) to provide a data communication connection to acompatible LAN.

Further, the communication interface 1005 may also include peripheralinterface devices, such as a Universal Serial Bus (USB) interface, aPersonal Computer Memory Card International Association (PCMCIA)interface, and the like. The communication interface 1005 also allowsthe exchange of information across one or more wireless communicationnetworks. Such networks may include cellular or short-range, such asIEEE 802.11 wireless local area networks (WLANs). And, the exchange ofinformation may involve the transmission of radio frequency (RF) signalsthrough an antenna (not shown). The communication interface 1005 alsoincludes the data access layers as described with reference to FIG. 1that allow data access between the monitoring and managing apparatus1000 and the databases 107, 108 and 109, and between the user-definedcode submissions and the SaaS applications.

The APIs 1007 of the monitoring and managing apparatus include all thecode, logic, functions and parameters for brokering and securingcommunications with the user-defined code submission 115-117 and theSaaS applications 120-123, as described with reference to FIG. 1.

For easy of explanation, the internet-based portal 103, dashboard 210,user-defined code submissions 112-115, data access layers 106, 110, andAPI 111 described with reference to FIG. 1, are contained within thecomputer architecture of the monitoring and managing apparatus 1000 ofFIG. 10. The above elements may be an application program 1004 or aprogram stored in the memory 1001 and executed by the processor 1002 forperforming the functions described with reference to this figure as wellas FIG. 1. That is, the monitoring and managing apparatus 1000 can bepart of the system 100 described with reference to FIG. 1. Accordingly,the detailed operation of the above elements are the same as thatalready described with reference to FIG. 1 and thus will not be repeatedhere.

From the description provided herein, those skilled in the art arereadily able to combine software created as described with theappropriate general purpose or special purpose computer hardware forcarrying out the features of the invention.

Additionally, it should be understood that various changes andmodifications to the presently preferred embodiments described hereinwill be apparent to those skilled in the art. Such changes andmodifications can be made without departing from the spirit and scope ofthe present subject matter and without diminishing its intendedadvantages. It is therefore intended that such changes and modificationsbe covered by the appended claim.

What is claimed is:
 1. A computing device comprising: a processorconfigured to render and display a view of a web browser on a displaydevice coupled to the processor; the processor further configured tofacilitate access, in the web browser over a public network, to a cloudservices related portal and to facilitate access to a dynamic graphicalwidget in the portal, wherein the dynamic graphical widget is linked toa cloud service for a plurality of software as a service (SaaS)applications; the processor further configured to facilitatecommunication with a plurality of databases that store information andfacilitate access to attributes of the plurality of SaaS applications,wherein the plurality of databases include an objects database thatincludes queries, stored procedures, and application code to store, add,delete, and modify each object; wherein the attributes are related tomonitoring and management of the plurality of SaaS applications; theprocessor configured to connect, via the web browser with a data accesslayer, with a push-pull data layer that pushes data to and pulls datafrom the plurality of SaaS applications; a communications interfaceconfigured to receive data via the dynamic graphical widget; and theprocessor further configured to receive a user input to cause movementof the dynamic graphical widget from a docked to undocked displayedposition in the web browser.
 2. The computing device of claim 1, whereinthe dynamic graphical widget provides an email related messagingservice.
 3. The computing device of claim 1, wherein a service isaccessible via the web browser to dynamically rate the dynamic graphicalwidget.
 4. The computing device of claim 1, wherein a category ofdifferent services is related to the dynamic graphical widget.
 5. Thecomputing device of claim 1, wherein the portal is a container for thedynamic graphical widget.
 6. A method performed by a computing device,the method comprising: rendering and displaying, by a processor, a viewof a web browser on a display device coupled to the processor;facilitating, by the processor, access in the web browser over a publicnetwork to a cloud services related portal and facilitating access to adynamic graphical widget in the portal, wherein the dynamic graphicalwidget is linked to a cloud service for a plurality of software as aservice (SaaS) applications; communicating, by the computing device,with a plurality of databases that store information and accessing, bythe computing device, attributes of the plurality of SaaS applications,wherein the plurality of databases include an objects database thatincludes queries, stored procedures, and application code to store, add,delete, and modify each object; wherein the attributes are related tomonitoring and managing of the plurality of SaaS applications;connecting, via the web browser with a data access layer, with apush-pull data layer that pushes data to and pulls data from theplurality of SaaS applications; receiving, by a communicationsinterface, data via the dynamic graphical widget; and receiving, by theprocessor, a user input to cause movement of the dynamic graphicalwidget from a docked to undocked displayed position in the web browser.7. The method of claim 6, wherein the dynamic graphical widget providesan email related messaging service.
 8. The method of claim 6, wherein aservice is accessible via the web browser to dynamically rate thedynamic graphical widget.
 9. The method of claim 6, wherein a categoryof different services is related to the dynamic graphical widget. 10.The method of claim 6, wherein the portal is a container for the dynamicgraphical widget.